package com.ruoyi.prt.service;

import java.math.BigDecimal;
import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.prt.domain.PrtCoupon;

/**
 * 优惠券Service接口
 * 
 * @author xiaobo Yan
 * @date 2021-03-31
 */
public interface IPrtCouponService 
{
    /**
     * 查询优惠券
     * 
     * @param couponId 优惠券ID
     * @return 优惠券
     */
    public PrtCoupon selectPrtCouponById(String couponId);

    /**
     * 查询优惠券列表
     * 
     * @param prtCoupon 优惠券
     * @return 优惠券集合
     */
    public List<PrtCoupon> selectPrtCouponList(PrtCoupon prtCoupon);

    /**
     * 新增优惠券
     * 
     * @param prtCoupon 优惠券
     * @return 结果
     */
    public int insertPrtCoupon(PrtCoupon prtCoupon);

    /**
     * 修改优惠券
     * 
     * @param prtCoupon 优惠券
     * @return 结果
     */
    public int updatePrtCoupon(PrtCoupon prtCoupon);

    /**
     * 批量删除优惠券
     * 
     * @param couponIds 需要删除的优惠券ID
     * @return 结果
     */
    public int deletePrtCouponByIds(String[] couponIds);

    /**
     * 删除优惠券信息
     * 
     * @param couponId 优惠券ID
     * @return 结果
     */
    public int deletePrtCouponById(String couponId);

    /**
     * 计算优惠的价格
     * @param originalPrice 原始价格
     * @param couponId 优惠券编号
     * @param orgId 组织编号
     * @param userId 优惠券获得人编号
     * @param couponType 优惠券类型
     * @return 结果
     */
    AjaxResult calcDiscountedPrice(BigDecimal originalPrice, String couponId, String orgId, Long userId, String couponType);

}
